package cn.com.view;

import cn.com.action.StuAction;

import javax.swing.*;
import java.awt.*;
import java.util.Date;

/**
 * @author ：khc
 * @date ：Created in 2021/12/21 14:49
 * @description：学生管理系统主界面
 * @modified By：
 * @version: $
 */
public class MainFrame extends JFrame{
    //定义菜单工具栏
    private JMenuBar jMenuBar;
    //定义某个菜单
    private JMenu file;
    //定义菜单项
    private JMenuItem open,save,exit;
    //----------------------------定义工具栏
    private JToolBar jToolBar;
    //定义两个按钮，添加到工具栏上的 加载图片
    private JButton bu1,bu2;
    //--------------------------定义分隔面板
    private JSplitPane jSplitPane;
    //定义分隔面板的左边组件是 JTree
    private JTree jTree;
    //定义分隔面板的右边组件
    private JDesktopPane jDesktopPane;
    //------------------------定义状态栏面板
    private JPanel statusPanel;

    //构造函数中进行初始化
    public MainFrame(){
        //设置title
        super("学生管理系统");
        //设置菜单
        this.setJMenuBar(createJMenuBar());
        //实例化桌面面板
        jDesktopPane = new JDesktopPane();
        //设置背景色
        jDesktopPane.setBackground(Color.DARK_GRAY);
        //获取主界面的容器，用它来指定位置添加组件
        Container container = this.getContentPane();
        //添加工具栏
        container.add(createJToolBar(),BorderLayout.NORTH);
        //添加中间分隔面板
        container.add(createJSplitPane());
        //添加底部的状态面板
        container.add(createStatusPane(),BorderLayout.SOUTH);
        //设置当前主界面的参数
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置最大化
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        this.setVisible(true);
    }
    //创建状态栏面板
    private JPanel createStatusPane(){
        //实例化
        statusPanel = new JPanel();
        //设置title
        statusPanel.setBorder(BorderFactory.createTitledBorder("系统"));
        //添加标签
        statusPanel.add(new JLabel("欢迎使用学生管理系统  作者：xxx "+new Date()));
        return statusPanel;
    }
    //创建分隔面板
    private JSplitPane createJSplitPane(){
        //实例化分隔面板
        JSplitPane jSplitPane = new JSplitPane();
        //设置分隔面板的位置和大小
        jSplitPane.setDividerLocation(100);
        jSplitPane.setDividerSize(10);
        //左边 JTree
        jSplitPane.setLeftComponent(createJTree());
        //右边 桌面
        jSplitPane.setRightComponent(jDesktopPane);
        return jSplitPane;
    }
    //创建JTree
    private JTree createJTree(){
        //实例化
        jTree = new JTree();
        return jTree;
    }


    //创建工具栏
    private JToolBar createJToolBar(){
        //实例化工具栏
        jToolBar = new JToolBar();
        //创建两个按钮，加载图片
        bu1 = new JButton(new ImageIcon("src/image/QQ.png"));
        bu2 = new JButton(new ImageIcon("src/image/safe.png"));
        //给bu1添加名字
        bu1.setActionCommand("showStu");
        //创建事件处理类，把当前的桌面面板传递
        StuAction stuAction = new StuAction(jDesktopPane);
        //注册按钮事件
        bu1.addActionListener(stuAction);
        //把按钮添加到工具栏中
        jToolBar.add(bu1);
        jToolBar.add(bu2);
        return jToolBar;
    }

    //创建菜单
    private JMenuBar createJMenuBar(){
        //实例化菜单工具栏
        jMenuBar = new JMenuBar();
        //创建指定的菜单
        file = new JMenu("文件");
        //创建菜单项
        open = new JMenuItem("打开");
        save = new JMenuItem("保存");
        exit = new JMenuItem("退出");
        //添加菜单项
        file.add(open);
        file.add(save);
        file.add(exit);
        jMenuBar.add(file);
        return jMenuBar;
    }


}
